/**  
* @author renbangjie renbangjie@126.com  
* @date 2014-11-8 下午12:48:23
* @version V1.0  
* <b>Copyright (c)</b> 2014医信金融信息服务（上海）有限公司-版权所有<br/>
*/
package com.yjd.comm.pay.service;

import java.util.Map;

import com.yjd.comm.base.model.Model;
import com.yjd.comm.pay.dto.RechargeOrderDto;
import com.yjd.comm.recharge.service.IOrderService;

/**
 * 网银充值接口的顶级接口
 * @author renbangjie renbangjie@126.com
 * @date 2014-11-8 下午12:48:23
 */
public interface IPayService<T extends Model> extends IOrderService{
	
	/**
	 * 充值
	* @param order
	* @return T 宝付订单对象
	* @throws Exception
	 */
	public T recharge(RechargeOrderDto order) throws Exception;
	
	/**
	 * 更新订单（第三方支付回调时调用）
	* @param paramMap
	* @return boolean 
	* @throws Exception
	 */
	public boolean updateOrder(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * 订单重试（快速发起原有失败的订单重新充值）
	* @return T 宝付订单对象
	* @throws Exception
	 */
	public T retry(Long order_id) throws Exception;
	
	/**
	 * 签名认证
	* @param paramMap
	* @return boolean
	* @throws Exception
	 */
	public boolean authentication(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * 获取返回通知
	* @return String
	 */
	public String getResult();
	
}
